/*
 * Flowable REST API
 * # flowable / flowəb(ə)l /    - a compact and highly efficient workflow and Business Process Management (BPM) platform for developers, system admins and business users.  - a lightning fast, tried and tested BPMN 2 process engine written in Java. It is Apache 2.0 licensed open source, with a committed community.  - can run embedded in a Java application, or as a service on a server, a cluster, and in the cloud. It integrates perfectly with Spring. With a rich Java and REST API, it is the ideal engine for orchestrating human or system activities.
 *
 * OpenAPI spec version: v1
 *
 *
 * NOTE: This class is auto generated by the swagger code generator program.
 * https://github.com/swagger-api/swagger-codegen.git
 * Do not edit the class manually.
 */


package com.ibm.risk.irmp.workflow.client.flowable.model;

import java.util.Objects;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import java.time.OffsetDateTime;
import java.util.ArrayList;
import java.util.List;

/**
 * ProcessInstanceQueryRequest
 */

public class ProcessInstanceQueryRequest {
  @JsonProperty("start")
  private Integer start = null;

  @JsonProperty("size")
  private Integer size = null;

  @JsonProperty("sort")
  private String sort = null;

  @JsonProperty("order")
  private String order = null;

  @JsonProperty("processInstanceId")
  private String processInstanceId = null;

  @JsonProperty("processInstanceIds")
  private List<String> processInstanceIds = null;

  @JsonProperty("processInstanceName")
  private String processInstanceName = null;

  @JsonProperty("processInstanceNameLike")
  private String processInstanceNameLike = null;

  @JsonProperty("processInstanceNameLikeIgnoreCase")
  private String processInstanceNameLikeIgnoreCase = null;

  @JsonProperty("processBusinessKey")
  private String processBusinessKey = null;

  @JsonProperty("processBusinessKeyLike")
  private String processBusinessKeyLike = null;

  @JsonProperty("processDefinitionId")
  private String processDefinitionId = null;

  @JsonProperty("processDefinitionIds")
  private List<String> processDefinitionIds = null;

  @JsonProperty("processDefinitionKey")
  private String processDefinitionKey = null;

  @JsonProperty("processDefinitionKeys")
  private List<String> processDefinitionKeys = null;

  @JsonProperty("processDefinitionName")
  private String processDefinitionName = null;

  @JsonProperty("processDefinitionCategory")
  private String processDefinitionCategory = null;

  @JsonProperty("processDefinitionVersion")
  private Integer processDefinitionVersion = null;

  @JsonProperty("processDefinitionEngineVersion")
  private String processDefinitionEngineVersion = null;

  @JsonProperty("deploymentId")
  private String deploymentId = null;

  @JsonProperty("deploymentIdIn")
  private List<String> deploymentIdIn = null;

  @JsonProperty("superProcessInstanceId")
  private String superProcessInstanceId = null;

  @JsonProperty("subProcessInstanceId")
  private String subProcessInstanceId = null;

  @JsonProperty("excludeSubprocesses")
  private Boolean excludeSubprocesses = null;

  @JsonProperty("involvedUser")
  private String involvedUser = null;

  @JsonProperty("startedBy")
  private String startedBy = null;

  @JsonProperty("startedBefore")
  private OffsetDateTime startedBefore = null;

  @JsonProperty("startedAfter")
  private OffsetDateTime startedAfter = null;

  @JsonProperty("suspended")
  private Boolean suspended = null;

  @JsonProperty("includeProcessVariables")
  private Boolean includeProcessVariables = null;

  @JsonProperty("variables")
  private List<QueryVariable> variables = null;

  @JsonProperty("callbackId")
  private String callbackId = null;

  @JsonProperty("callbackType")
  private String callbackType = null;

  @JsonProperty("tenantId")
  private String tenantId = null;

  @JsonProperty("tenantIdLike")
  private String tenantIdLike = null;

  @JsonProperty("withoutTenantId")
  private Boolean withoutTenantId = null;

  public ProcessInstanceQueryRequest start(Integer start) {
    this.start = start;
    return this;
  }

   /**
   * Get start
   * @return start
  **/
  @ApiModelProperty(value = "")
  public Integer getStart() {
    return start;
  }

  public void setStart(Integer start) {
    this.start = start;
  }

  public ProcessInstanceQueryRequest size(Integer size) {
    this.size = size;
    return this;
  }

   /**
   * Get size
   * @return size
  **/
  @ApiModelProperty(value = "")
  public Integer getSize() {
    return size;
  }

  public void setSize(Integer size) {
    this.size = size;
  }

  public ProcessInstanceQueryRequest sort(String sort) {
    this.sort = sort;
    return this;
  }

   /**
   * Get sort
   * @return sort
  **/
  @ApiModelProperty(value = "")
  public String getSort() {
    return sort;
  }

  public void setSort(String sort) {
    this.sort = sort;
  }

  public ProcessInstanceQueryRequest order(String order) {
    this.order = order;
    return this;
  }

   /**
   * Get order
   * @return order
  **/
  @ApiModelProperty(value = "")
  public String getOrder() {
    return order;
  }

  public void setOrder(String order) {
    this.order = order;
  }

  public ProcessInstanceQueryRequest processInstanceId(String processInstanceId) {
    this.processInstanceId = processInstanceId;
    return this;
  }

   /**
   * Get processInstanceId
   * @return processInstanceId
  **/
  @ApiModelProperty(value = "")
  public String getProcessInstanceId() {
    return processInstanceId;
  }

  public void setProcessInstanceId(String processInstanceId) {
    this.processInstanceId = processInstanceId;
  }

  public ProcessInstanceQueryRequest processInstanceIds(List<String> processInstanceIds) {
    this.processInstanceIds = processInstanceIds;
    return this;
  }

  public ProcessInstanceQueryRequest addProcessInstanceIdsItem(String processInstanceIdsItem) {
    if (this.processInstanceIds == null) {
      this.processInstanceIds = new ArrayList<String>();
    }
    this.processInstanceIds.add(processInstanceIdsItem);
    return this;
  }

   /**
   * Get processInstanceIds
   * @return processInstanceIds
  **/
  @ApiModelProperty(value = "")
  public List<String> getProcessInstanceIds() {
    return processInstanceIds;
  }

  public void setProcessInstanceIds(List<String> processInstanceIds) {
    this.processInstanceIds = processInstanceIds;
  }

  public ProcessInstanceQueryRequest processInstanceName(String processInstanceName) {
    this.processInstanceName = processInstanceName;
    return this;
  }

   /**
   * Get processInstanceName
   * @return processInstanceName
  **/
  @ApiModelProperty(value = "")
  public String getProcessInstanceName() {
    return processInstanceName;
  }

  public void setProcessInstanceName(String processInstanceName) {
    this.processInstanceName = processInstanceName;
  }

  public ProcessInstanceQueryRequest processInstanceNameLike(String processInstanceNameLike) {
    this.processInstanceNameLike = processInstanceNameLike;
    return this;
  }

   /**
   * Get processInstanceNameLike
   * @return processInstanceNameLike
  **/
  @ApiModelProperty(value = "")
  public String getProcessInstanceNameLike() {
    return processInstanceNameLike;
  }

  public void setProcessInstanceNameLike(String processInstanceNameLike) {
    this.processInstanceNameLike = processInstanceNameLike;
  }

  public ProcessInstanceQueryRequest processInstanceNameLikeIgnoreCase(String processInstanceNameLikeIgnoreCase) {
    this.processInstanceNameLikeIgnoreCase = processInstanceNameLikeIgnoreCase;
    return this;
  }

   /**
   * Get processInstanceNameLikeIgnoreCase
   * @return processInstanceNameLikeIgnoreCase
  **/
  @ApiModelProperty(value = "")
  public String getProcessInstanceNameLikeIgnoreCase() {
    return processInstanceNameLikeIgnoreCase;
  }

  public void setProcessInstanceNameLikeIgnoreCase(String processInstanceNameLikeIgnoreCase) {
    this.processInstanceNameLikeIgnoreCase = processInstanceNameLikeIgnoreCase;
  }

  public ProcessInstanceQueryRequest processBusinessKey(String processBusinessKey) {
    this.processBusinessKey = processBusinessKey;
    return this;
  }

   /**
   * Get processBusinessKey
   * @return processBusinessKey
  **/
  @ApiModelProperty(value = "")
  public String getProcessBusinessKey() {
    return processBusinessKey;
  }

  public void setProcessBusinessKey(String processBusinessKey) {
    this.processBusinessKey = processBusinessKey;
  }

  public ProcessInstanceQueryRequest processBusinessKeyLike(String processBusinessKeyLike) {
    this.processBusinessKeyLike = processBusinessKeyLike;
    return this;
  }

   /**
   * Get processBusinessKeyLike
   * @return processBusinessKeyLike
  **/
  @ApiModelProperty(value = "")
  public String getProcessBusinessKeyLike() {
    return processBusinessKeyLike;
  }

  public void setProcessBusinessKeyLike(String processBusinessKeyLike) {
    this.processBusinessKeyLike = processBusinessKeyLike;
  }

  public ProcessInstanceQueryRequest processDefinitionId(String processDefinitionId) {
    this.processDefinitionId = processDefinitionId;
    return this;
  }

   /**
   * Get processDefinitionId
   * @return processDefinitionId
  **/
  @ApiModelProperty(value = "")
  public String getProcessDefinitionId() {
    return processDefinitionId;
  }

  public void setProcessDefinitionId(String processDefinitionId) {
    this.processDefinitionId = processDefinitionId;
  }

  public ProcessInstanceQueryRequest processDefinitionIds(List<String> processDefinitionIds) {
    this.processDefinitionIds = processDefinitionIds;
    return this;
  }

  public ProcessInstanceQueryRequest addProcessDefinitionIdsItem(String processDefinitionIdsItem) {
    if (this.processDefinitionIds == null) {
      this.processDefinitionIds = new ArrayList<String>();
    }
    this.processDefinitionIds.add(processDefinitionIdsItem);
    return this;
  }

   /**
   * Get processDefinitionIds
   * @return processDefinitionIds
  **/
  @ApiModelProperty(value = "")
  public List<String> getProcessDefinitionIds() {
    return processDefinitionIds;
  }

  public void setProcessDefinitionIds(List<String> processDefinitionIds) {
    this.processDefinitionIds = processDefinitionIds;
  }

  public ProcessInstanceQueryRequest processDefinitionKey(String processDefinitionKey) {
    this.processDefinitionKey = processDefinitionKey;
    return this;
  }

   /**
   * Get processDefinitionKey
   * @return processDefinitionKey
  **/
  @ApiModelProperty(value = "")
  public String getProcessDefinitionKey() {
    return processDefinitionKey;
  }

  public void setProcessDefinitionKey(String processDefinitionKey) {
    this.processDefinitionKey = processDefinitionKey;
  }

  public ProcessInstanceQueryRequest processDefinitionKeys(List<String> processDefinitionKeys) {
    this.processDefinitionKeys = processDefinitionKeys;
    return this;
  }

  public ProcessInstanceQueryRequest addProcessDefinitionKeysItem(String processDefinitionKeysItem) {
    if (this.processDefinitionKeys == null) {
      this.processDefinitionKeys = new ArrayList<String>();
    }
    this.processDefinitionKeys.add(processDefinitionKeysItem);
    return this;
  }

   /**
   * Get processDefinitionKeys
   * @return processDefinitionKeys
  **/
  @ApiModelProperty(value = "")
  public List<String> getProcessDefinitionKeys() {
    return processDefinitionKeys;
  }

  public void setProcessDefinitionKeys(List<String> processDefinitionKeys) {
    this.processDefinitionKeys = processDefinitionKeys;
  }

  public ProcessInstanceQueryRequest processDefinitionName(String processDefinitionName) {
    this.processDefinitionName = processDefinitionName;
    return this;
  }

   /**
   * Get processDefinitionName
   * @return processDefinitionName
  **/
  @ApiModelProperty(value = "")
  public String getProcessDefinitionName() {
    return processDefinitionName;
  }

  public void setProcessDefinitionName(String processDefinitionName) {
    this.processDefinitionName = processDefinitionName;
  }

  public ProcessInstanceQueryRequest processDefinitionCategory(String processDefinitionCategory) {
    this.processDefinitionCategory = processDefinitionCategory;
    return this;
  }

   /**
   * Get processDefinitionCategory
   * @return processDefinitionCategory
  **/
  @ApiModelProperty(value = "")
  public String getProcessDefinitionCategory() {
    return processDefinitionCategory;
  }

  public void setProcessDefinitionCategory(String processDefinitionCategory) {
    this.processDefinitionCategory = processDefinitionCategory;
  }

  public ProcessInstanceQueryRequest processDefinitionVersion(Integer processDefinitionVersion) {
    this.processDefinitionVersion = processDefinitionVersion;
    return this;
  }

   /**
   * Get processDefinitionVersion
   * @return processDefinitionVersion
  **/
  @ApiModelProperty(value = "")
  public Integer getProcessDefinitionVersion() {
    return processDefinitionVersion;
  }

  public void setProcessDefinitionVersion(Integer processDefinitionVersion) {
    this.processDefinitionVersion = processDefinitionVersion;
  }

  public ProcessInstanceQueryRequest processDefinitionEngineVersion(String processDefinitionEngineVersion) {
    this.processDefinitionEngineVersion = processDefinitionEngineVersion;
    return this;
  }

   /**
   * Get processDefinitionEngineVersion
   * @return processDefinitionEngineVersion
  **/
  @ApiModelProperty(value = "")
  public String getProcessDefinitionEngineVersion() {
    return processDefinitionEngineVersion;
  }

  public void setProcessDefinitionEngineVersion(String processDefinitionEngineVersion) {
    this.processDefinitionEngineVersion = processDefinitionEngineVersion;
  }

  public ProcessInstanceQueryRequest deploymentId(String deploymentId) {
    this.deploymentId = deploymentId;
    return this;
  }

   /**
   * Get deploymentId
   * @return deploymentId
  **/
  @ApiModelProperty(value = "")
  public String getDeploymentId() {
    return deploymentId;
  }

  public void setDeploymentId(String deploymentId) {
    this.deploymentId = deploymentId;
  }

  public ProcessInstanceQueryRequest deploymentIdIn(List<String> deploymentIdIn) {
    this.deploymentIdIn = deploymentIdIn;
    return this;
  }

  public ProcessInstanceQueryRequest addDeploymentIdInItem(String deploymentIdInItem) {
    if (this.deploymentIdIn == null) {
      this.deploymentIdIn = new ArrayList<String>();
    }
    this.deploymentIdIn.add(deploymentIdInItem);
    return this;
  }

   /**
   * Get deploymentIdIn
   * @return deploymentIdIn
  **/
  @ApiModelProperty(value = "")
  public List<String> getDeploymentIdIn() {
    return deploymentIdIn;
  }

  public void setDeploymentIdIn(List<String> deploymentIdIn) {
    this.deploymentIdIn = deploymentIdIn;
  }

  public ProcessInstanceQueryRequest superProcessInstanceId(String superProcessInstanceId) {
    this.superProcessInstanceId = superProcessInstanceId;
    return this;
  }

   /**
   * Get superProcessInstanceId
   * @return superProcessInstanceId
  **/
  @ApiModelProperty(value = "")
  public String getSuperProcessInstanceId() {
    return superProcessInstanceId;
  }

  public void setSuperProcessInstanceId(String superProcessInstanceId) {
    this.superProcessInstanceId = superProcessInstanceId;
  }

  public ProcessInstanceQueryRequest subProcessInstanceId(String subProcessInstanceId) {
    this.subProcessInstanceId = subProcessInstanceId;
    return this;
  }

   /**
   * Get subProcessInstanceId
   * @return subProcessInstanceId
  **/
  @ApiModelProperty(value = "")
  public String getSubProcessInstanceId() {
    return subProcessInstanceId;
  }

  public void setSubProcessInstanceId(String subProcessInstanceId) {
    this.subProcessInstanceId = subProcessInstanceId;
  }

  public ProcessInstanceQueryRequest excludeSubprocesses(Boolean excludeSubprocesses) {
    this.excludeSubprocesses = excludeSubprocesses;
    return this;
  }

   /**
   * Get excludeSubprocesses
   * @return excludeSubprocesses
  **/
  @ApiModelProperty(value = "")
  public Boolean getExcludeSubprocesses() {
    return excludeSubprocesses;
  }

  public void setExcludeSubprocesses(Boolean excludeSubprocesses) {
    this.excludeSubprocesses = excludeSubprocesses;
  }

  public ProcessInstanceQueryRequest involvedUser(String involvedUser) {
    this.involvedUser = involvedUser;
    return this;
  }

   /**
   * Get involvedUser
   * @return involvedUser
  **/
  @ApiModelProperty(value = "")
  public String getInvolvedUser() {
    return involvedUser;
  }

  public void setInvolvedUser(String involvedUser) {
    this.involvedUser = involvedUser;
  }

  public ProcessInstanceQueryRequest startedBy(String startedBy) {
    this.startedBy = startedBy;
    return this;
  }

   /**
   * Get startedBy
   * @return startedBy
  **/
  @ApiModelProperty(value = "")
  public String getStartedBy() {
    return startedBy;
  }

  public void setStartedBy(String startedBy) {
    this.startedBy = startedBy;
  }

  public ProcessInstanceQueryRequest startedBefore(OffsetDateTime startedBefore) {
    this.startedBefore = startedBefore;
    return this;
  }

   /**
   * Get startedBefore
   * @return startedBefore
  **/
  @ApiModelProperty(value = "")
  public OffsetDateTime getStartedBefore() {
    return startedBefore;
  }

  public void setStartedBefore(OffsetDateTime startedBefore) {
    this.startedBefore = startedBefore;
  }

  public ProcessInstanceQueryRequest startedAfter(OffsetDateTime startedAfter) {
    this.startedAfter = startedAfter;
    return this;
  }

   /**
   * Get startedAfter
   * @return startedAfter
  **/
  @ApiModelProperty(value = "")
  public OffsetDateTime getStartedAfter() {
    return startedAfter;
  }

  public void setStartedAfter(OffsetDateTime startedAfter) {
    this.startedAfter = startedAfter;
  }

  public ProcessInstanceQueryRequest suspended(Boolean suspended) {
    this.suspended = suspended;
    return this;
  }

   /**
   * Get suspended
   * @return suspended
  **/
  @ApiModelProperty(value = "")
  public Boolean getSuspended() {
    return suspended;
  }

  public void setSuspended(Boolean suspended) {
    this.suspended = suspended;
  }

  public ProcessInstanceQueryRequest includeProcessVariables(Boolean includeProcessVariables) {
    this.includeProcessVariables = includeProcessVariables;
    return this;
  }

   /**
   * Get includeProcessVariables
   * @return includeProcessVariables
  **/
  @ApiModelProperty(value = "")
  public Boolean getIncludeProcessVariables() {
    return includeProcessVariables;
  }

  public void setIncludeProcessVariables(Boolean includeProcessVariables) {
    this.includeProcessVariables = includeProcessVariables;
  }

  public ProcessInstanceQueryRequest variables(List<QueryVariable> variables) {
    this.variables = variables;
    return this;
  }

  public ProcessInstanceQueryRequest addVariablesItem(QueryVariable variablesItem) {
    if (this.variables == null) {
      this.variables = new ArrayList<QueryVariable>();
    }
    this.variables.add(variablesItem);
    return this;
  }

   /**
   * Get variables
   * @return variables
  **/
  @ApiModelProperty(value = "")
  public List<QueryVariable> getVariables() {
    return variables;
  }

  public void setVariables(List<QueryVariable> variables) {
    this.variables = variables;
  }

  public ProcessInstanceQueryRequest callbackId(String callbackId) {
    this.callbackId = callbackId;
    return this;
  }

   /**
   * Get callbackId
   * @return callbackId
  **/
  @ApiModelProperty(value = "")
  public String getCallbackId() {
    return callbackId;
  }

  public void setCallbackId(String callbackId) {
    this.callbackId = callbackId;
  }

  public ProcessInstanceQueryRequest callbackType(String callbackType) {
    this.callbackType = callbackType;
    return this;
  }

   /**
   * Get callbackType
   * @return callbackType
  **/
  @ApiModelProperty(value = "")
  public String getCallbackType() {
    return callbackType;
  }

  public void setCallbackType(String callbackType) {
    this.callbackType = callbackType;
  }

  public ProcessInstanceQueryRequest tenantId(String tenantId) {
    this.tenantId = tenantId;
    return this;
  }

   /**
   * Get tenantId
   * @return tenantId
  **/
  @ApiModelProperty(value = "")
  public String getTenantId() {
    return tenantId;
  }

  public void setTenantId(String tenantId) {
    this.tenantId = tenantId;
  }

  public ProcessInstanceQueryRequest tenantIdLike(String tenantIdLike) {
    this.tenantIdLike = tenantIdLike;
    return this;
  }

   /**
   * Get tenantIdLike
   * @return tenantIdLike
  **/
  @ApiModelProperty(value = "")
  public String getTenantIdLike() {
    return tenantIdLike;
  }

  public void setTenantIdLike(String tenantIdLike) {
    this.tenantIdLike = tenantIdLike;
  }

  public ProcessInstanceQueryRequest withoutTenantId(Boolean withoutTenantId) {
    this.withoutTenantId = withoutTenantId;
    return this;
  }

   /**
   * Get withoutTenantId
   * @return withoutTenantId
  **/
  @ApiModelProperty(value = "")
  public Boolean getWithoutTenantId() {
    return withoutTenantId;
  }

  public void setWithoutTenantId(Boolean withoutTenantId) {
    this.withoutTenantId = withoutTenantId;
  }


  @Override
  public boolean equals(java.lang.Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    ProcessInstanceQueryRequest processInstanceQueryRequest = (ProcessInstanceQueryRequest) o;
    return Objects.equals(this.start, processInstanceQueryRequest.start) &&
        Objects.equals(this.size, processInstanceQueryRequest.size) &&
        Objects.equals(this.sort, processInstanceQueryRequest.sort) &&
        Objects.equals(this.order, processInstanceQueryRequest.order) &&
        Objects.equals(this.processInstanceId, processInstanceQueryRequest.processInstanceId) &&
        Objects.equals(this.processInstanceIds, processInstanceQueryRequest.processInstanceIds) &&
        Objects.equals(this.processInstanceName, processInstanceQueryRequest.processInstanceName) &&
        Objects.equals(this.processInstanceNameLike, processInstanceQueryRequest.processInstanceNameLike) &&
        Objects.equals(this.processInstanceNameLikeIgnoreCase, processInstanceQueryRequest.processInstanceNameLikeIgnoreCase) &&
        Objects.equals(this.processBusinessKey, processInstanceQueryRequest.processBusinessKey) &&
        Objects.equals(this.processBusinessKeyLike, processInstanceQueryRequest.processBusinessKeyLike) &&
        Objects.equals(this.processDefinitionId, processInstanceQueryRequest.processDefinitionId) &&
        Objects.equals(this.processDefinitionIds, processInstanceQueryRequest.processDefinitionIds) &&
        Objects.equals(this.processDefinitionKey, processInstanceQueryRequest.processDefinitionKey) &&
        Objects.equals(this.processDefinitionKeys, processInstanceQueryRequest.processDefinitionKeys) &&
        Objects.equals(this.processDefinitionName, processInstanceQueryRequest.processDefinitionName) &&
        Objects.equals(this.processDefinitionCategory, processInstanceQueryRequest.processDefinitionCategory) &&
        Objects.equals(this.processDefinitionVersion, processInstanceQueryRequest.processDefinitionVersion) &&
        Objects.equals(this.processDefinitionEngineVersion, processInstanceQueryRequest.processDefinitionEngineVersion) &&
        Objects.equals(this.deploymentId, processInstanceQueryRequest.deploymentId) &&
        Objects.equals(this.deploymentIdIn, processInstanceQueryRequest.deploymentIdIn) &&
        Objects.equals(this.superProcessInstanceId, processInstanceQueryRequest.superProcessInstanceId) &&
        Objects.equals(this.subProcessInstanceId, processInstanceQueryRequest.subProcessInstanceId) &&
        Objects.equals(this.excludeSubprocesses, processInstanceQueryRequest.excludeSubprocesses) &&
        Objects.equals(this.involvedUser, processInstanceQueryRequest.involvedUser) &&
        Objects.equals(this.startedBy, processInstanceQueryRequest.startedBy) &&
        Objects.equals(this.startedBefore, processInstanceQueryRequest.startedBefore) &&
        Objects.equals(this.startedAfter, processInstanceQueryRequest.startedAfter) &&
        Objects.equals(this.suspended, processInstanceQueryRequest.suspended) &&
        Objects.equals(this.includeProcessVariables, processInstanceQueryRequest.includeProcessVariables) &&
        Objects.equals(this.variables, processInstanceQueryRequest.variables) &&
        Objects.equals(this.callbackId, processInstanceQueryRequest.callbackId) &&
        Objects.equals(this.callbackType, processInstanceQueryRequest.callbackType) &&
        Objects.equals(this.tenantId, processInstanceQueryRequest.tenantId) &&
        Objects.equals(this.tenantIdLike, processInstanceQueryRequest.tenantIdLike) &&
        Objects.equals(this.withoutTenantId, processInstanceQueryRequest.withoutTenantId);
  }

  @Override
  public int hashCode() {
    return Objects.hash(start, size, sort, order, processInstanceId, processInstanceIds, processInstanceName, processInstanceNameLike, processInstanceNameLikeIgnoreCase, processBusinessKey, processBusinessKeyLike, processDefinitionId, processDefinitionIds, processDefinitionKey, processDefinitionKeys, processDefinitionName, processDefinitionCategory, processDefinitionVersion, processDefinitionEngineVersion, deploymentId, deploymentIdIn, superProcessInstanceId, subProcessInstanceId, excludeSubprocesses, involvedUser, startedBy, startedBefore, startedAfter, suspended, includeProcessVariables, variables, callbackId, callbackType, tenantId, tenantIdLike, withoutTenantId);
  }


  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class ProcessInstanceQueryRequest {\n");

    sb.append("    start: ").append(toIndentedString(start)).append("\n");
    sb.append("    size: ").append(toIndentedString(size)).append("\n");
    sb.append("    sort: ").append(toIndentedString(sort)).append("\n");
    sb.append("    order: ").append(toIndentedString(order)).append("\n");
    sb.append("    processInstanceId: ").append(toIndentedString(processInstanceId)).append("\n");
    sb.append("    processInstanceIds: ").append(toIndentedString(processInstanceIds)).append("\n");
    sb.append("    processInstanceName: ").append(toIndentedString(processInstanceName)).append("\n");
    sb.append("    processInstanceNameLike: ").append(toIndentedString(processInstanceNameLike)).append("\n");
    sb.append("    processInstanceNameLikeIgnoreCase: ").append(toIndentedString(processInstanceNameLikeIgnoreCase)).append("\n");
    sb.append("    processBusinessKey: ").append(toIndentedString(processBusinessKey)).append("\n");
    sb.append("    processBusinessKeyLike: ").append(toIndentedString(processBusinessKeyLike)).append("\n");
    sb.append("    processDefinitionId: ").append(toIndentedString(processDefinitionId)).append("\n");
    sb.append("    processDefinitionIds: ").append(toIndentedString(processDefinitionIds)).append("\n");
    sb.append("    processDefinitionKey: ").append(toIndentedString(processDefinitionKey)).append("\n");
    sb.append("    processDefinitionKeys: ").append(toIndentedString(processDefinitionKeys)).append("\n");
    sb.append("    processDefinitionName: ").append(toIndentedString(processDefinitionName)).append("\n");
    sb.append("    processDefinitionCategory: ").append(toIndentedString(processDefinitionCategory)).append("\n");
    sb.append("    processDefinitionVersion: ").append(toIndentedString(processDefinitionVersion)).append("\n");
    sb.append("    processDefinitionEngineVersion: ").append(toIndentedString(processDefinitionEngineVersion)).append("\n");
    sb.append("    deploymentId: ").append(toIndentedString(deploymentId)).append("\n");
    sb.append("    deploymentIdIn: ").append(toIndentedString(deploymentIdIn)).append("\n");
    sb.append("    superProcessInstanceId: ").append(toIndentedString(superProcessInstanceId)).append("\n");
    sb.append("    subProcessInstanceId: ").append(toIndentedString(subProcessInstanceId)).append("\n");
    sb.append("    excludeSubprocesses: ").append(toIndentedString(excludeSubprocesses)).append("\n");
    sb.append("    involvedUser: ").append(toIndentedString(involvedUser)).append("\n");
    sb.append("    startedBy: ").append(toIndentedString(startedBy)).append("\n");
    sb.append("    startedBefore: ").append(toIndentedString(startedBefore)).append("\n");
    sb.append("    startedAfter: ").append(toIndentedString(startedAfter)).append("\n");
    sb.append("    suspended: ").append(toIndentedString(suspended)).append("\n");
    sb.append("    includeProcessVariables: ").append(toIndentedString(includeProcessVariables)).append("\n");
    sb.append("    variables: ").append(toIndentedString(variables)).append("\n");
    sb.append("    callbackId: ").append(toIndentedString(callbackId)).append("\n");
    sb.append("    callbackType: ").append(toIndentedString(callbackType)).append("\n");
    sb.append("    tenantId: ").append(toIndentedString(tenantId)).append("\n");
    sb.append("    tenantIdLike: ").append(toIndentedString(tenantIdLike)).append("\n");
    sb.append("    withoutTenantId: ").append(toIndentedString(withoutTenantId)).append("\n");
    sb.append("}");
    return sb.toString();
  }

  /**
   * Convert the given object to string with each line indented by 4 spaces
   * (except the first line).
   */
  private String toIndentedString(java.lang.Object o) {
    if (o == null) {
      return "null";
    }
    return o.toString().replace("\n", "\n    ");
  }

}
